// this file makes C++ editing environment recognize opencl files
struct float2
{
	float x,y;
	float2(){}
	float2(int x){}
	static float2 yx;
	float2 operator * (float v) const {return *this;}
	float2 operator * (float2 v) const {return *this;}
	float2 operator + (float2 v) const {return *this;}
};
struct float3
{
	float x,y,z; float pading;
};
struct float4
{
	float x,y,z,w;
	float3 xyz;
	float2 xy, zw, yz;
	float4(){}
	float4(float x, float y, float z, float w);
	float4(float x);
	float4 operator * (float v) const {return *this;}
	float4 operator * (float4 v) const {return *this;}
	float4 operator + (float4 v) const {return *this;}
};
struct uint2
{
	unsigned int x,y;
	uint2(){}
	uint2(unsigned int x){}
};
struct int4
{
	int x,y,z,w;
	int2 xy, zw, yz;
	int4(){}
	int4(int x){}
};
struct int2
{
	int x,y;
	int2(){}
	int2(int x){}
};
struct ushort2
{
	unsigned short x,y;
	ushort2(){}
	ushort2(unsigned short x){}
};
typedef unsigned short ushort;
typedef unsigned int uint;
template <typename T> T copysign(T v, T v2){return v;}
float native_rsqrt(float v){return 1.0f/sqrt(v);}
#include <math.h>
#include <limits.h>
#include <float.h>
#define __kernel ;
#define __global 
#define __local 
#define __private 
int get_global_id(int);
int get_local_id(int);
#include "GpuDataStructures.cl"
#include "GpuDataStructures_IO.cl"
template<typename T> float as_float(T v){return 0.0f;}
template<typename T> int as_int(T v){return 1;}
template<typename T> int4 as_int4(T v){return int4();}
template<typename T> ushort2 as_ushort2(T v){return ushort2();}
template<typename T> float4 as_float4(T v){return float4();}
template<typename T> T min(T v1, T v2){return v1<v2?v1:v2;}
template<typename T> T max(T v1, T v2){return v1>v2?v1:v2;}
